#include <stdio.h>

#include "tabs.h"

#define check_int_equal(x, y) do \
{ \
    int x_ret = x; \
    int y_ret = y; \
    if(x_ret != y_ret) { \
        printf("error at %s:%d: %d != %d", __FILE__, __LINE__, x_ret, y_ret); \
        return 0; \
    } else { \
        printf("pass\n"); \
    } \
} while (0);

int main() {
    tab_handler *handler = NULL;

    check_int_equal(common_tabs_init(&handler), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_header(handler, 4, "header1", "header2", "header3", "header4"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "1001", "1002", "1003", "1004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "2001", "2002", "2003", "2004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "3001", "3002", "3003", "3004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "4001", "4002", "4003", "4004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "5001", "5002", "5003", "5004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_add_data(handler, 4, "6001", "6002", "6003", "6004"), COMMON_TABS_OK);
    check_int_equal(common_tabs_print_unicode_tabs(handler), COMMON_TABS_OK);
    check_int_equal(common_tabs_print_ascii_tabs(handler), COMMON_TABS_OK);
    check_int_equal(common_tabs_free(&handler), COMMON_TABS_OK);

    return 0;
}